package student.aistar.mapper;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import student.aistar.model.dto.ProductInfoDTO;
import student.aistar.model.entity.*;

import java.util.List;

/**
 * 本类用来演示:
 *
 * @author: qinFeng
 * @date: 2021/9/27 9:48
 */
public interface ProductMapper {
    /**
     * 根据Id查询商品
     *
     * @param id
     * @return
     */
    @Select("select * from product where product_id=#{id}")
    Product selectProductBytId(Integer id);

    //根据产品id查看所有评论
    @Select("select * from evaluate where product_id = #{productId}")
    Evaluate selectEvaluateByproductId(Integer productId);

    /*
     *功能描述:查询所有分类
     * @date 2021/10/1
     * @param
     * @return java.util.List<student.aistar.model.entity.Category>
     */
    @Select("select * from category ")
    List<Category> findAllCategory();

    /*
     *功能描述:查询所有商品
     * @date 2021/10/1
     * @param
     * @return java.util.List<student.aistar.model.entity.Product>
     */
    @Select("select * from product")
    List<Product> findAllProduct();

    /*
     *功能描述:多条件查询商品
     * @date 2021/10/1
     * @param name
     * @param categoryId        
     * @return java.util.List<student.aistar.model.entity.Product>
     */
    List<Product> findProduct(@Param("productName") String productName, @Param("categoryId") Integer categoryId);


    /**
     * 根据用户点击的商品传过来的ID, 跳转到购买页面, 查询到产品的信息
     * @return
     */
    ProductInfoDTO productInfo(Integer id);

    //根据产品id查询产品的概述信息
    @Select("select * from overviewpage where product_id = #{productId}")
    List<Overviewpage> selectOverViewPageByProductId(Integer productId);

}
